Database systems employ database schema to organize data in a database. The database schema can include a structure of the database system described in a language supported by a database management system (DBMS). Stated in another way, the database schema describes the organization of the data in the database. The DBMS includes programs to control the creation, organization, maintenance, storage and use of data in the database. A relational DBMS can be used in relational databases that store data and relationships among the data in tables.
Some applications developed using an object oriented methodology and language store data objects in relational databases. An application may maintain metadata that stores a mapping of the application's data objects to the databases. The mapping enables an application to use a relational database as a persistent object store. For an application, the metadata may describe each persistent class and each persistent member of the class. The application metadata may be used to generate the database schema.
When an application is updated, its corresponding data base schema also needs to be updated or evolved to support the updated application. When the application is updated, there may be a need to perform schema evolution to update the set of classes or set of members of one or more classes in the database. For example, schema evolution may modify the class descriptions in the schema of the database to be consistent with definitions in the program. Schema evolution may provide a new database schema due to the changes required by the new application. Object conversion can be performed to make data consistent with the new schema.
Traditionally, the schema stored in the DBMS is evolved to the new schema using a schema update application that performs the necessary schema evolution at the time the new application is installed. For example, the schema stored in the DBMS can be evolved to the new schema by the application of a structured query language (SQL) script which would alter the application's database schema in a batch process to conform to the requirements of the new application. However, with such schema evolution the application is unavailable during the time required to install and activate the new software release. Furthermore, the application is unavailable during the time it is required to execute the schema update application (e.g., SQL script) to bring the schema stored in the DBMS into conformity with the requirements of the new application.